package arrays;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * @author LiangMu
 * @version \$Id: P8.java, v 0.1, 2022年12月12日 11:34 LiangMu Exp $$
 */
public class P8 {

    public static void main(String[] args) {
        int[] nums1 = new int[]{1, 2, 2, 1};
        int[] nums2 = new int[]{2, 2};
        System.out.println(Arrays.toString(intersect(nums1, nums2)));

    }

    public static int[] intersect(int[] nums1, int[] nums2) {
        Arrays.sort(nums1);
        Arrays.sort(nums2);
        int i1 = 0, i2 = 0;
        List<Integer> result = new ArrayList<>();
        while (i1 < nums1.length && i2 < nums2.length) {
            int compare = Integer.compare(nums1[i1], nums2[i2]);
            switch (compare) {
                case -1:
                    ++i1;
                    break;
                case 1:
                    ++i2;
                    break;
                case 0:
                    result.add(nums1[i1]);
                    ++i1;
                    ++i2;
                    break;
            }
        }
        return result.stream().mapToInt(it -> it).toArray();
    }
}
